package com.china08.yxyapi.entity.mg.huixue;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import com.china08.yxyapi.entity.mg.MongoBaseEntityNoId;

/**
 * 慧学系统--学习计划, 创建计划时, 在此表中增加一条记录,
 * 
 * @author Richard Wang
 *
 */
@SuppressWarnings("serial")
@Document(collection = "yxy.stu.huixue.plan")
public class YxyHuixuePlan extends MongoBaseEntityNoId {

    /** 主键 */
    @Id
    private String id;

    @Indexed
    @Field(value = "student_id")
    private String studentId;// 学生id

    /** 学段 */
    @Indexed
    @Field(value = "stage")
    private String stage;

    /** 学科 */
    @Field(value = "subject")
    private String subject;

    /** 学科名称 */
    @Field(value = "subject_name")
    private String subjectName;

    @Field(value = "version_id")
    private String versionId;

    @Field(value = "version_name")
    private String versionName;

    @Field(value = "last_score_type")
    private Integer lastScoreType;// 上次考试成绩分值, 100,120,150,180

    @Field(value = "last_score")
    private Double lastScore;// 上次考试分数, 小数点后一位

    @Field(value = "semester_id")
    private String semesterId;// 册别id

    @Field(value = "semester_name")
    private String semesterName;// 册别名称

    @Field(value = "book_content_id")
    private String bookContentId;// 只能是一级目录, id

    @Field(value = "book_content_name")
    private String bookContentName;// 目录名称

    @Field(value = "know_count")
    private Integer knowCount;// 知识点数量

    @Field(value = "expect_score")
    private Integer expectScore;// 预期提高分数, 5, 10, 15, 20

    @Field(value = "begin_date")
    private Integer beginDate;// 开始时间

    @Field(value = "endDate")
    private Integer endDate;// 结束时间

    @Field(value = "status")
    private Integer status;// 0--已截止 , 1--进行中

    @Deprecated
    @Field(value = "progress")
    private Double progress;// 掌握度.

    @Field(value = "complete")
    private Double complete; // 完成度 （当前任务下已完成知识点/ 当前任务下所有知识点 ）在每完成一个知识点闯关的时候触发
                             // 2018年3月14日 李亚松 0.0- 100

    @Field(value = "finish_know_count")
    private Integer finishKnowCount;// 已完成知识点数量 2018年3月14日11:54:25
    @Field(value = "notice")
    private String notice;// 计划通知提示语

    @Field(value = "icon_status")
    private Integer iconStatus;// 图标状态

    @Field(value = "current_score")
    private Double currentScore = -1d;// 截止之后,本次考试成绩,当此值填写之后(大于-1),应该在"学习记录"中

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getStudentId() {
        return studentId;
    }

    public void setStudentId(String studentId) {
        this.studentId = studentId;
    }

    public String getStage() {
        return stage;
    }

    public void setStage(String stage) {
        this.stage = stage;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getSubjectName() {
        return subjectName;
    }

    public void setSubjectName(String subjectName) {
        this.subjectName = subjectName;
    }

    public String getVersionId() {
        return versionId;
    }

    public void setVersionId(String versionId) {
        this.versionId = versionId;
    }

    public String getVersionName() {
        return versionName;
    }

    public void setVersionName(String versionName) {
        this.versionName = versionName;
    }

    public Integer getLastScoreType() {
        return lastScoreType;
    }

    public void setLastScoreType(Integer lastScoreType) {
        this.lastScoreType = lastScoreType;
    }

    public Double getLastScore() {
        return lastScore;
    }

    public void setLastScore(Double lastScore) {
        this.lastScore = lastScore;
    }

    public String getSemesterId() {
        return semesterId;
    }

    public void setSemesterId(String semesterId) {
        this.semesterId = semesterId;
    }

    public String getSemesterName() {
        return semesterName;
    }

    public void setSemesterName(String semesterName) {
        this.semesterName = semesterName;
    }

    public String getBookContentId() {
        return bookContentId;
    }

    public void setBookContentId(String bookContentId) {
        this.bookContentId = bookContentId;
    }

    public String getBookContentName() {
        return bookContentName;
    }

    public void setBookContentName(String bookContentName) {
        this.bookContentName = bookContentName;
    }

    public Integer getKnowCount() {
        return knowCount;
    }

    public void setKnowCount(Integer knowCount) {
        this.knowCount = knowCount;
    }

    public Integer getExpectScore() {
        return expectScore;
    }

    public void setExpectScore(Integer expectScore) {
        this.expectScore = expectScore;
    }

    public Integer getBeginDate() {
        return beginDate;
    }

    public void setBeginDate(Integer beginDate) {
        this.beginDate = beginDate;
    }

    public Integer getEndDate() {
        return endDate;
    }

    public void setEndDate(Integer endDate) {
        this.endDate = endDate;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Double getProgress() {
        return progress;
    }

    public void setProgress(Double progress) {
        this.progress = progress;
    }

    public Double getCurrentScore() {
        return currentScore;
    }

    public void setCurrentScore(Double currentScore) {
        this.currentScore = currentScore;
    }

    public String getNotice() {
        return notice;
    }

    public void setNotice(String notice) {
        this.notice = notice;
    }

    public Integer getIconStatus() {
        return iconStatus;
    }

    public void setIconStatus(Integer iconStatus) {
        this.iconStatus = iconStatus;
    }

    public Double getComplete() {
        return complete;
    }

    public void setComplete(Double complete) {
        this.complete = complete;
    }

    public Integer getFinishKnowCount() {
        return finishKnowCount;
    }

    public void setFinishKnowCount(Integer finishKnowCount) {
        this.finishKnowCount = finishKnowCount;
    }

}
